Language Definitions as Rewrite Theories
نویسندگان
چکیده
K is a formal framework for defining the operational semantics of programming languages. It includes software tools for compiling K language definitions to Maude rewrite theories, for executing programs in the defined languages based on the Maude rewriting engine, and for analyzing programs by adapting various Maude analysis tools. A recent extension to the K tool suite is an automatic transformation of language definitions that enables the symbolic execution of programs, i.e., the execution of programs with symbolic inputs. In this paper we investigate the theoretical relationships between K language definitions and their translations to Maude, between symbolic extensions of K definitions and their Maude encodings, and how the relations between K definitions and their symbolic extensions are reflected on their respective representations in Maude. These results show, in particular, how analyses performed with Maude tools can be formally lifted up to the original language definitions.
منابع مشابه
A Constructor-Based Reachability Logic for Rewrite Theories
Reachability logic has been applied to K rewrite-rule-based language definitions as a language-generic logic of programs. To be able to verify not just code but also distributed system designs, a new rewritetheory-generic reachability logic is presented and proved sound for a wide class of rewrite theories. The logic’s automation is increased by means of constructor-based semantic unification, ...
متن کاملA Rewrite Framework for Language Definitions and for Generation of Efficient Interpreters
A rewrite logic semantic definitional framework for programming languages is introduced, called K, together with partially automated translations of K language definitions into rewriting logic and into C. The framework is exemplified by defining SILF, a simple imperative language with functions. The translation of K definitions into rewriting logic enables the use of the various analysis tools ...
متن کاملK-Maude: A Rewriting Based Tool for Semantics of Programming Languages
K is a rewriting-based framework for defining programming languages. K-Maude is a tool implementing K on top of Maude. K-Maude provides an interface accepting K modules along with regular Maude modules and a collection of tools for transforming K language definitions into Maude rewrite theories for execution or analysis, or into LaTeX for documentation purposes. The current K-Maude prototype wa...
متن کاملK : a Rewrite Logic Framework for Language Design , Semantics , Analysis and Implementation CS 422 Lecture Notes for Homework 6
A framework, consisting of a technique and a notation, to define programming languages is presented. The technique, formalized in rewriting logic, is based on a first-order representation of continuations and on matching modulo associativity, commutativity and identity. The proposed notation consists of a series of conventions that make the language definitions intuitive, easy to understand, re...
متن کاملA rewriting logic approach to operational semantics
We show how one can use rewriting logic to faithfully capture (not implement) various operational semantic frameworks as rewrite logic theories, namely big-step and small-step semantics, reduction semantics using evaluation contexts, and continuation-based semantics. There is a one-to-one correspondence between an original operational semantics and its associated rewrite logic theory, both nota...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- J. Log. Algebr. Meth. Program.
دوره 85 شماره
صفحات -
تاریخ انتشار 2014